<p>如果在当前线程持有锁时调用<code> Thread.sleep（...）</code> ，则可能导致性能和可伸缩性问题，甚至导致死锁，
  因为持有锁的线程的执行被冻结。最好在监视对象上调用<code> wait（...）</code> 暂时释放锁并允许其他线程运行。</p>
<h2>不规范代码样例</h2>

<pre>
public void doSomething(){
  synchronized(monitor) {
    while(notReady()){
      Thread.sleep(200);
    }
    process();
  }
  ...
}
</pre>
<h2>正确的代码样例</h2>

<pre>
public void doSomething(){
  synchronized(monitor) {
    while(notReady()){
      monitor.wait(200);
    }
    process();
  }
  ...
}
</pre>

